#!/usr/bin/python
 
print("打印列表")
list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
 
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
print("goodbye")

# 删除列表元素
print("删除列表元素")
print (list1)
del list1[2]
print ("After deleting value at index 2 : ")
print (list1)
print("goodbye")

#函数
print("函数")
print (list(range(10)))
print (len(list1))
print (max(list2))
print (min(list2))
print (sum(list2))
print(list2)
list2.append(8) # 在列表末尾添加新的对象
print ("append",list2)
list2.insert(1, 10) # 在指定位置插入新的对象
print ("insert",list2)
list2.remove(5) # 删除指定对象
print ("remove",list2)
list2.pop() # 删除最后一个对象
print ("pop",list2)
list.pop([-1]) #移除列表中的一个元素（默认最后一个元素），并且返回该元素的值
print ("pop -1 :",list2)
list2.reverse() # 反转列表
print ("reverse",list2)
list2.sort() # 排序列表
print ("sort",list2)
print ("index",list2.index(10)) # 从列表中找出某个值第一个匹配项的索引位置 没有就报错
print ("count",list2.count(5)) # 统计某个元素在列表中出现的次数
print("goodbye")

# 操作
print("操作")
print(list1+list2)
print(list1*2)
print(list1[::-1])
print(2000 in list1)
print("goodbye")

# 列表解析
print("列表解析")
squares = [x**2 for x in range(5)]
print (squares)
print("goodbye")


# 列表推导式
print("列表推导式")
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print([[row[i] for row in matrix] for i in range(3)])

# 嵌套列表解析
print("嵌套列表解析")
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print([[row[i] for row in matrix] for i in range(3) for j in range(2)])
print("goodbye")

#列表截取
print("列表截取")
list3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list3[1:5])
print(list3[:5])
print(list3[5:]) #从第6个元素开始截取列表
print("goodbye")